package com.hivision.iot.dto;

/**
 * <p>Title: AssetTechnologyAttrRequestDTO</p>
 * <p>Description: 资产技术属性</p>
 * <p>Company: www.h-visions.com</p>
 * <p>create date: 2021/03/10</p>
 *
 * @author :jqzhang
 * @version :1.0.0
 */

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;

@Getter
@Setter
@ToString
public class AssetTechnologyAttrRequestDTO {

    /**
     * 资产编码
     */
    @JsonProperty("AssetCode")
    private String assetCode;

    /**
     * 属性编码数组，最⼤个数为100。格式：
     * AttributeCodes=aaa&AttributeCodes=bbb&...
     */
    @JsonProperty("AttributeCodes")
    private List<String> attributeCodes;
    /**
     * 起始时间。ISO 8601格式: YYYY-MMDDTHH:MM:SSZ。如2021-04-
     * 22T22:02:46+08:00。
     */
    @JsonProperty("Since")
    private String since;
    /**
     * 结束时间。ISO 8601格式: YYYY-MMDDTHH:MM:SSZ。如2021-04-
     * 22T22:02:46+08:00。
     */
    @JsonProperty("Until")
    private String until;
    /**
     * 查询类型。有效值：
     * last：最新值。
     * first：最旧值。
     * min：最⼩值。
     * max：最⼤值。
     * mean：平均值。
     * distinct：不同值。
     * count：总数。
     */
    @JsonProperty("Type")
    private String type;
    /**
     * 分组时间间隔。如1ns|u|ms|s|m|h|d|w。指定时必须指定
     * Type，且⾄少指定Since或Util中的⼀个。若Util为空则
     * 返回截⽌到当前时间的分组。时间隔间内没有数据点时
     * 默认返回null，可通过Fill指定没有数据点时的返回值。
     */
    @JsonProperty("Interval")
    private String interval;
    /**
     * 指定时必须同时指定Interval，表示分组时间间隔不包
     * 含数据点时的返回值。可选值：
     * 任意数值：⽤这个数字返回没有数据点的时间间隔
     * 的数据。
     * linear：返回没有数据点的时间间隔的线性插值的
     * 结果。
     * none：不返回在时间间隔⾥没有点的数据。
     * previous：返回时间间隔的前⼀个间隔的数据。
     */
    @JsonProperty("Fill")
    private String fill;

    /**
     * 指定返回值按时间排序⽅式。可选值：
     * asc：升序。默认值，表示第⼀个具有最早时间
     * 戳。
     * desc：降序。
     */
    @JsonProperty("OrderBy")
    private String orderBy;

    /**
     * 数据偏移量。默认值为0，表示不偏移。
     */
    @JsonProperty("Offset")
    private Integer offset;
    /**
     * 数据偏移量。默认值为0，表示不偏移。
     */
    @JsonProperty("Limit")
    private Integer limit;
}
